// js commun à toute l'interface d'administration

$(function() {

	// affichage des infos d'un contenu
	$('#popup_details').dialog({
		autoOpen: false,
		modal: true,
		closeOnEscape: true,
		resizable: false,
		width: 600
	});

	// confirmation oui/non (plugin jquery.confirm)
	$('a.js-confirm').confirm({
		wrapper: '<span class="js-confirm-wrapper"></span>',
		msg:'<strong>Supprimer ?</strong><br />',
	  	timeout: 9000,
		buttons: {
			ok: '<span class="button-oui"></span>',
			cancel: '<span class="button-non"></span>',
			separator: ''
		}
	});

	// jquery ui buttons
	$('.js-button').button();

	// config plugin jquery.datatable
	jQuery.fn.dataTableExt.aTypes.unshift(
		function ( sData )
		{
			var d = sData.split("/");
			if (d.length == 3) // could be improved...
			{
				return 'euro_date';
			}
			return null;
		}
	);
	jQuery.fn.dataTableExt.oSort['euro_date-asc']  = function(a,b) {
		var ukDatea = a.split('/');
		var ukDateb = b.split('/');

		var x = (ukDatea[2] + ukDatea[1] + ukDatea[0]) * 1;
		var y = (ukDateb[2] + ukDateb[1] + ukDateb[0]) * 1;

		return ((x < y) ? -1 : ((x > y) ?  1 : 0));
	};
	jQuery.fn.dataTableExt.oSort['euro_date-desc'] = function(a,b) {
		var ukDatea = a.split('/');
		var ukDateb = b.split('/');

		var x = (ukDatea[2] + ukDatea[1] + ukDatea[0]) * 1;
		var y = (ukDateb[2] + ukDateb[1] + ukDateb[0]) * 1;

		return ((x < y) ? 1 : ((x > y) ?  -1 : 0));
	};
	$('table.dataTable').dataTable({
		"iDisplayLength": 25,
		"bAutoWidth": true,
		"oLanguage": {
			"sProcessing": "Chargement...",
			"sLengthMenu": "Afficher _MENU_ lignes par page",
			"sFilterMenu": "Rechercher",
			"sZeroRecords": "Aucune ligne à afficher",
			"sInfo": "Lignes _START_ à _END_ (_TOTAL_ au total)",
			"sInfoEmpty": "0 ligne",
			"sInfoFiltered": "(filtré à partir de _MAX_ lignes)",
			"sSearch": "Recherche : ",
			"oPaginate": {
				"sFirst":    "Première",
				"sPrevious": "Précédente",
				"sNext":     "Suivante",
				"sLast":     "Dernière"
			}
		},
		"bJQueryUI": true,
		"bProcessing": true
	});

	// config jquery.jgrowl
	$.jGrowl.defaults.closer = false;
});

// suppression animée d'un élément du DOM
function delete_object(selector)
{
	$(selector).css({
		'background': '#ff8888 !important',
		'color': '#941010'
	}).fadeOut(500, function() {
		$(this).remove();
	});
}

/**
 * Extraire l'id numérique de l'attribut id d'un élément
 * @return article_comment_42 -> 42
 */
function id_from_element(element)
{
	var string_with_id = $(element).attr('id')
	return string_with_id.substr(string_with_id.lastIndexOf('_') + 1);
}
